package org.example.array;

public class Subarray_with_the_smallest_length {
    public static void main(String[] args) {
        //长度最小的子数组
        //给定一个含有 n 个正整数的数组和一个正整数 target 。
        //找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ，并返回其长度。如果不存在符合条件的子数组，返回 0 。

        //暴力破解
        int[] nums = {1,2,3,4,5,6,7,8,9};
        int target = 11;
        int sum = 0;
        int len = nums.length+1;
        for (int i = 0; i < nums.length; i++) {
            sum = 0;
            for (int j = i; j < nums.length; j++) {
                sum += nums[j];
                if (sum>=target){
                    len = Math.min(len, (j -i + 1));
                    break; //因为我们是找符合条件最短的子序列，所以一旦符合条件就break
                }
            }
        }
        len = len == nums.length+1 ? 0 : len;
        System.out.println(len);
    }
}
